"""
2.2  循环控制语句  while
本小节主要学习循环控制语句“while”的用法。使用循环控制语句使程序能够根据条
件的真假（True 或 False）反复执行相同的代码段，程序的执行也不再是自上而下逐行执行。
2.2.1 while 语句基本用法
本知识点主要学习使用 while 语句来执行对应代码段的基本用法。while 语句首先对条
件进行判定，结果为 True 时执行 while 下缩进的代码段，代码段执行完毕后又会返回判定
条件继续判断，结果为 True 时继续执行 while 下缩进的代码段，直到 while 判定为 False 时
程序会跳过 while 语句下的缩进代码段结束循环，继续执行循环语句后面的代码。while 语
句的语法形式是：
while  条件(condition):
执行语句(缩进代码块)
"""
"""
【示例 2.2.1.1】演示一个最简单的 while 语句，实现了一个无限循环输出。

"""
# from time import sleep
# while True:
#     print('Hello world!')
#     sleep(1)
# print('循环结束')

# print("*" * 100)

"""
【示例 2.2.1.2】根据用户输入来终止 while 循环，完成循环的跳出。
"""
active_loop = False
while active_loop:
    student_name = input("请输入学生姓名:")
    if student_name == 'exit':
        active_loop = False
        print('循环结束')
    else:
        print('输入的学生姓名是：' + student_name)

print("*" * 100)

"""
【示例 2.2.1.3】根据循环特定次数来终止 while 循环，完成循环的跳出。
"""
loopCount = 0
while loopCount <= 3:
    studentName = input('请输入学生的姓名：')
    print('第' + str(loopCount) + '次输入姓名是：'+studentName)
    loopCount = loopCount + 1
print('第' + str(loopCount) + '输入停止！')

"""
2.2.2 while 结构中 break 和 continue 语句用法
本知识点主要学习使用 while 中的 break 和 continue 来执行对应操作的基本用法。使用
break 可以直接跳出 while 循环体；使用 continue 可以直接转到 while 循环体的开始，不再
执行 continue 下的语句。
"""
"""
【示例 2.2.2.1】使用 break 语句来终止 while 循环，完成示例 2.2.1.2 的功能。
"""
while True:
    studentName = input('请输入学生的姓名：')
    if studentName == 'exit':
        print('循环退出')
        break
    print('输入的学生姓名是：' + studentName)
"""
【代码分析】第 5 行代码使用了 break 语句来强制退出所在的 while 循环，这个代码比示例
2.2.1.2 少了一个布尔型的变量 activeLoop， while 循环体内只要出现 break 语句，便不会再向下执
行，直接跳出 while 循环体，这个程序的语句比示例 2.2.1.2 更加精炼。
"""

"""
【示例 2.2.2.2】使用 continue 语句来跳到循环体开始，完善了【示例 2.2.2.1】的功能，
加入了对姓名长度的校验。
"""
while True:
    studentName = input('请输入学生的姓名：')
    if studentName == 'exit':
        print('循环退出')
        break
    if len(studentName) > 4:
        print('姓名检查不通过')
        continue
    print('输入的学生姓名是：' + studentName)
"""
【代码分析】第 8 行代码语句使用了 continue，和上面示例中的 break 不同的是 continue 没
有跳出循环体，而是 while 循环体内 continue 下面的语句不会再执行，直接跳到循环体开始继续
执行。
"""